1. Field of the Invention
The present invention relates to the field of computing and data systems, and specifically to compression of data files.
2. Description of the Related Art
Compression of data in computer systems is well-known. In fact, there are several standards and emerging standards used for data compression.
For example, JPEG (Joint Photographic Experts Group) is a compression methodology defined by the International Standards Organization (ISO) as ISO standard 10918 for compression of still images. JPEG is commonly used for compression of images on the World Wide Web (WWW) and elsewhere on the Internet.
Another compression algorithm commonly used for compression of images on the Internet is GIF (Graphic Interchange Format). GIF is a de facto standard.
JPEG is generally thought to be a better compression algorithm than GIF if an image with lots of colors needs to be compressed. The downside is that the compressed file is relatively large compared to a GIF file for the same original image when the image has a small number of colors. GIF, on the other hand, is generally thought of as a superior compression technology to JPEG for text files in part because of its ability to compress black and white files efficiently.
Other compression methodologies exist for video (e.g., MPEG or Motion Picture Experts Group) and audio.
Typically, applications expect data files of a certain class (e.g., lots of colors, lots of text, etc.) and they are designed by their developers to use a compression methodology which will be relatively efficient for the expected type of data.
Unfortunately, it is not always possible for the application developers to predict in advance the type of data file which will need to be compressed is especially if the application is one which can expect to encounter numerous classes of data files. It would be useful to provide a method for choosing an efficient compression algorithm.
One example of an application in which it is difficult, if not impossible, to predict in advance the type of data file which will need to be compressed in a search and indexing tool which searches for media content files and stores the media content in a compressed form allowing users to preview the content. An example of such a tool is the Magnifi.TM. Server available from Magnifi, Inc. of Cupertino, Calif. The Magnifi.TM. Server is capable of indexing vast amounts of information from many sources. The format of the information is typically not predictable in advance. By way of example, however, an image which is optimally compressed with GIF can take 5-10 times more storage area if compressed with JPEG. For an image which is optimally compressed with JPEG, compression with GIF will result in a 2 to 3 times increase in storage area. Clearly, it is desirable, in a tool which indexes large volumes of data to provide for an index which is as small as possible.
When a searchable index includes the storage of visual previews of media objects, it is desirable to minimize the storage space associated with the visual preview files. The visual preview files are typically compressed image files where minimum file size and maximum picture quality are objectives.